﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace BibControles
{
    public partial class BarraEstimativa : UserControl
    {
        DateTime horaInicial;

        long umPorCento = -1;

        double tempoRestanteMinutos = -1;

        DateTime agora;

        double qtdAtualizacoes = 1.0;

        public BarraEstimativa()
        {
            InitializeComponent();
        }

        public void _setMaxProgressValue(long maxValue, string acaoAtual)
        {
            progressBar1.Maximum = (int) maxValue;
            horaInicial = DateTime.Now;
            umPorCento = Convert.ToInt64( Math.Truncate(maxValue * 0.01) );
            qtdAtualizacoes = 1;

            labelAcaoAtual.Text = acaoAtual;
        }

        public void _setProgressValue(long value)
        {
            double porcentagemAtual = (100.0 * value) / progressBar1.Maximum;

            if (value >= (umPorCento * qtdAtualizacoes))
            {
                agora = DateTime.Now;

                tempoRestanteMinutos = (agora - horaInicial).TotalMinutes * ((100.0 - porcentagemAtual) / porcentagemAtual);
                labelTimeLeft.Text = agora.AddMinutes(tempoRestanteMinutos).ToString();

                qtdAtualizacoes++;
            }

            progressBar1.Value = (int) value;

            base.Update();
        }

        public void _zerar()
        {
            umPorCento = -1;
            tempoRestanteMinutos = -1;
            labelAcaoAtual.Text = "";
            labelTimeLeft.Text = "";
            qtdAtualizacoes = 1;
        }
    }
}
